home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / pc_board / dlog2lst.zip / DLOG2LST.PAS < prev    next >
Pascal/Delphi Source File  |  1992-02-06  |  3KB  |  123 lines

  1.  
  2. (*
  3.  * dlog2lst - filter reads dszlog file and returns selective file lists
  4.  *
  5.  * Copyright 1992 Samuel H. Smith (2-5-92)
  6.  *
  7.  *)
  8.  
  9. const
  10.    version = 'DLOG2LST (2/5/92) - DSZLOG to File List Filter - Copyright 1992 Samuel H. Smith';
  11.  
  12. (* ------------------------------------------------------------ *)
  13. function scan_nextpar(var line: string): string;
  14. var
  15.    i:      integer;
  16.    par:    string;
  17.  
  18. begin
  19.    fillchar(par,sizeof(par),0);
  20.    while copy(line,1,1) = ' ' do
  21.       delete(line,1,1);
  22.    while line[length(line)] = ' ' do
  23.       dec(line[0]);
  24.  
  25.    i := pos(' ',line);
  26.    if i = 0 then
  27.    begin
  28.       par := line;
  29.       line := '';
  30.    end
  31.    else
  32.    begin
  33.       par := copy(line,1,i-1);
  34.       line := copy(line,i,255);
  35.    end;
  36.  
  37.    scan_nextpar := par;
  38. end;
  39.  
  40.  
  41. (* ------------------------------------------------------------ *)
  42. procedure usage;
  43. begin
  44.    writeln(version);
  45.    writeln;
  46.    writeln('This filter program scans a DSZLOG file and returns selected');
  47.    writeln('information in the form of a file list.');
  48.    writeln;
  49.    writeln('Usage: DLOG2LST -I <DSZLOG >LISTING    ;list incoming files');
  50.    writeln('       DLOG2LST -O <DSZLOG >LISTING    ;list outgoing files');
  51.    writeln('       DLOG2LST -A <DSZLOG >LISTING    ;list all files');
  52.    writeln;
  53.    writeln('Examples:');
  54.    writeln('  DLOG2LST -I <%DSZLOG% >UPLOAD.LST');
  55.    writeln('      Creates a list of files uploaded');
  56.    writeln('  DLOG2LST -O <%DSZLOG% >DOWNLD.LST');
  57.    writeln('      Creates a list of files downloaded');
  58.    halt(1);
  59. end;
  60.  
  61.  
  62. (* ------------------------------------------------------------ *)
  63. var
  64.    mode:    string;
  65.    fsize:   string;
  66.    ebps:    string;
  67.    ecps:    string;
  68.    errors:  string;
  69.    flows:   string;
  70.    lastsiz: string;
  71.    fname:   string;
  72.    serial:  string;
  73.  
  74.    line:    string;
  75.    option:  string;
  76.    temp:    string;
  77.  
  78. begin
  79.    if paramcount <> 1 then
  80.       usage;
  81.  
  82.    option := paramstr(1);
  83.    if (option[1] = '/') or (option[1] = '-') then
  84.       delete(option,1,1);
  85.  
  86.    option[1] := upcase(option[1]);
  87.    case option[1] of
  88.       'I','O','A':
  89.          ;
  90.       else
  91.          usage;
  92.    end;
  93.  
  94.    while not eof do
  95.    begin
  96.       readln(line);
  97.       mode := scan_nextpar(line);
  98.       fsize := scan_nextpar(line);
  99.       ebps := scan_nextpar(line);
  100.       temp := scan_nextpar(line);
  101.       ecps := scan_nextpar(line);
  102.       temp := scan_nextpar(line);
  103.       errors := scan_nextpar(line);
  104.       temp := scan_nextpar(line);
  105.       flows := scan_nextpar(line);
  106.       lastsiz := scan_nextpar(line);
  107.       fname := scan_nextpar(line);
  108.       serial := scan_nextpar(line);
  109.  
  110.       case mode[1] of
  111.          'e','l','E','L':
  112.             ;
  113.          'a'..'z':
  114.             if (option[1] = 'O') or (option[1] = 'A') then
  115.                writeln(fname);
  116.          'A'..'Z':
  117.             if (option[1] = 'I') or (option[1] = 'A') then
  118.                writeln(fname);
  119.       end;
  120.    end;
  121. end.
  122.  
  123.